package com.payment.paymentmanagersystem.dal;

import com.payment.paymentmanagersystem.idal.IPaymentDAL;
import com.payment.paymentmanagersystem.model.PayOrderInfo;
import com.payment.paymentmanagersystem.model.UserInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 支付模块实现类
 *
 * @author 李耀华
 * @date 2023年6月14日
 */

@Service
public class PaymentDAL {
    @Autowired
    IPaymentDAL iPaymentDAL;

    /**
     * 支付模块创建支付订单存储过程
     * 调用存储过程
     * @返回值 error,如果值=0，则说明运行成功，不为0则运行失败
     * 实现方法返回值为boolean类型，成功则为true，失败为false
     */
    public boolean createPayOrder(PayOrderInfo order){

        //先验证余额是否够
        String payerBlance = getBlanceByUserId(order);
        if(Double.parseDouble(payerBlance) <Double.parseDouble(order.getOrder_payMoney())){
            return false;
        }

        //添加支付订单信息
        //这里要添加一笔支付订单信息，同时增加两笔账单信息（分别是收款人和付款人的）
        //订单默认分类是1：扫码
        order.setOrder_type(2);
        //支付方式默认是1：余额支付   提示：后续完善，如果余额不足的情况及多种支付自动选择的功能
        order.setOrder_paymentmethod(1);
        //收款机构：自有系统
        order.setOrder_collection("Java5班在线支付系统");
        if (iPaymentDAL.orderUserPaymentToPayee(order)==0){
            return true;
        }else{
            return false;
        }
    }

    /**
     * 验证付款账户余额
     *
     */
    public String getBlanceByUserId(PayOrderInfo order){
        return iPaymentDAL.getBlanceByUserId(order).getBlance();
    }

}
